package com.system.cacheClient.enums;

/**
 * 缓存失效模式枚举
 */
public enum CacheInvalidationMode {
    
    /**
     * 主动失效模式
     * 客户端和服务端都直接删除缓存
     */
    ACTIVE(1),
    
    /**
     * 被动失效模式
     * 将缓存过期时间设置为0
     */
    PASSIVE(2);
    
    private final int code;
    
    CacheInvalidationMode(int code) {
        this.code = code;
    }
    
    public int getCode() {
        return code;
    }
    
    /**
     * 根据代码获取失效模式
     * @param code 模式代码
     * @return 失效模式
     */
    public static CacheInvalidationMode fromCode(int code) {
        for (CacheInvalidationMode mode : CacheInvalidationMode.values()) {
            if (mode.getCode() == code) {
                return mode;
            }
        }
        // 默认返回主动失效模式
        return ACTIVE;
    }
}